/**
 * Project Name: mms-provider-user
 * File Name: IDepartmentService
 * Package Name: com.scb.dev.mms.service
 * Date: 2018/11/30 08:50 PM
 * Copyright (c) 2018, Rainson.Yang All Rights Reserved.
 */
package com.scb.dev.mms.service;

import com.scb.dev.mms.common.ResponseResult;
import com.scb.dev.mms.pojo.Department;

/**
 * ClassName: IDepartmentService
 * Description: DepartmentService
 * Date: 2018/11/30 08:50 PM
 *
 * @author Rainson.Yang
 * @version V1.0
 * @since JDK 1.8
 */
public interface IDepartmentService {


    /**
     *
     * @MethodName: insertDepartment
     * @Description: add a new department
     *
     * @param: department this department is bean
     * @Return: ResponseResult success:{true, "add success", 202}
     * @Date: 2018/12/2 19:03
     */
    ResponseResult insertDepartment(Department department);


    /**
     *
     * @MethodName: deleteDepartment
     * @Description: delete a department by id
     *
     * @Param: String departmentId
     * @Return: ResponseResult success:{true, "delete success", 203}
     * @Date: 2018/12/2 19:12
     */
    ResponseResult deleteDepartment(String departmentId);

    /**
     *
     * @MethodName: updateDepartment
     * @Description: update a Department
     *
     * @Param: Department department
     * @Return: ResponseResult success:{true, "update success", 204}
     * @Date: 2018/12/2 19:16
     */
    ResponseResult updateDepartment(Department department);

    /**
     *
     * @MethodName: queryOne
     * @Description: query department by id
     *
     * @Param: String departmentId
     * @Return: ResponseResult success:{true, "find success", 201}
     * @Date: 2018/12/2 19:16
     */
    ResponseResult queryOne(String departmentId);

    /**
     *
     * @MethodName: queryName
     * @Description: query departmentName by id
     *
     * @Param: String departmentId
     * @Return: ResponseResult success:{true, "find success", 201}
     * @Date: 2018/12/2 19:17
     */
    ResponseResult queryName(String departmentId);


    /**
     *
     * @MethodName: queryAll
     * @Description: Query all department , this method will query original data from database.
     *
     * @Param:
     * @Return: ResponseResult success:{departmentList, true, "find success", 201}
     * @Date: 2018/12/2 19:19
     */
    ResponseResult queryAll();

    /**
     *
     * @MethodName: queryAllDetails
     * @Description: Query all department , this method will machining original data from database.
     *               eg:accountId->accountName
     *
     * @Param:
     * @Return: ResponseResult
     * @Date: 2018/12/2 19:21
     */
    ResponseResult queryAllDetails();

    /**
     *
     * @MethodName: queryDepartmentIdAndName
     * @Description: query a department's id and name.
     *
     * @Params:
     * @Return:
     * @Date: 2018/12/2 20:07
     */
    ResponseResult queryAllDepartmentIdAndName();
}
